﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EOS.Framework.Web.Mvc
{
    public enum FilterType
    {
        BeforeRequest,
        BeforeAction,
        BeforeRender,
        OnError
    };

    /// <summary>
    /// Ein Filter ist eine Objekt, dass von einer Seite, vor einer Anfrage, der Action
    /// oder dem Rendern aufgerufen wird, um zum Beispiel die Seite vor unbefugtem Zugriff 
    /// zu schützen und weiterzuleiten.
    /// </summary>
    public interface IWebPageFilter : IFilter
    {
        /// <summary>
        /// Gibt die Reihenfolge zurück, wann diese Filter aufgerufen werden soll.
        /// </summary>
        /// <value>Die Reihenfolge.</value>
        int Order { get; }

        /// <summary>
        /// Gibt den Typ des Filters zurück.
        /// </summary>
        /// <value>Der Filter-Typ.</value>
        FilterType FilterType { get; }
    }
}
